package com.winit.schedule.job.tracker.repository;

import java.util.List;

import com.winit.schedule.core.model.AssignedTask;
import com.winit.schedule.core.model.JobID;
import com.winit.schedule.core.repository.constants.LogType;
import com.winit.schedule.core.repository.entity.JobEntity;
import com.winit.schedule.core.repository.entity.QuartzLogEntity;
import com.winit.schedule.core.repository.entity.TaskEntity;
import com.winit.schedule.core.repository.entity.UserEntity;

public interface LogDataManager {

    // 日志

    void logger(JobEntity job, List<String> taskIds, boolean updateJob);

    void logger(JobID jobId, LogType logType);

    void logger(List<AssignedTask> tasks, String exception, String taskTrackerUuid, LogType logType);

    void logger(List<AssignedTask> tasks, String taskTrackerUuid, LogType logType);

    void logger(String taskTrackerUuid, LogType logType);
    
    // quartz
    void logger(QuartzLogEntity log);

    void logger(TaskEntity task, LogType logType);

    /**
     * 记录异常任务项恢复的用户操作日志
     * @param ids
     * @param logType
     */
    void logger(String[] items, LogType logType);

    /**
     * 登录、登出日志记录
     */
    void logger(UserEntity user, LogType logType);

}
